#define DO_NOT_COMPILE 0
+/* These are used when a destination-side DnD operation is taking place.
+ * Normally, when a file is being hovered directly over a bookmark,
+ * we'll be in DROP_STATE_NORMAL.
+ *
+ * But when a file is being hovered between bookmarks, this means the user
+ * may want to create a new bookmark for that file between those bookmarks.
+ * In that case, the drop state will be *not* DROP_STATE_NORMAL.
+ *
+ * When the drop state is FADING_OUT, it means that the user is hovering
+ * directly over an existing bookmark and an immediate drop will cause the
+ * file being dragged to be dropped on the bookmark, instead of causing
+ * a new bookmark to be created.
+ */
+typedef enum {
+ DROP_STATE_NORMAL,
+ DROP_STATE_NEW_BOOKMARK_FADING_IN,
+ DROP_STATE_NEW_BOOKMARK_ARMED,
+ DROP_STATE_NEW_BOOKMARK_FADING_OUT
+} DropState;
+
struct _GtkPlacesSidebar {
GtkScrolledWindow parent;
GtkPlacesOpenFlags open_flags;
+ DropState drop_state;
+ int new_bookmark_index;
+
guint show_desktop : 1;
};
sidebar->hostnamed_cancellable,
hostname_proxy_new_cb,
g_object_ref (sidebar));
+
+ sidebar->drop_state = DROP_STATE_NORMAL;
+ sidebar->new_bookmark_index = -1;
}
static void